<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;
use think\Request;

class House extends Admin
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        // 查询House表
        $data = Db::name('house')
            ->alias('h')
            ->field(['h.id','h.address','h.area','h.hot','h.rent','h.rental','l.name'])
            ->join('landlord l','l.id=h.lid')
            ->where('h.review','1')
            ->paginate(4);
        // 分页
        $page = $data->render();

        $this->assign('data', $data);
        $this->assign('page', $page);
        return $this->fetch('house/index');
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        // 查询户型表
        $data = Db::name('house_type')
            ->field(true)
            ->where('display','1')
            ->select();
        return view('', [
            'type'=>$data
        ]);
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        $post = $request->post();
        // 处理数据
        $arr['name'] = $post['name'];
        $arr['tel'] = $post['tel'];

        unset($post['name']);
        unset($post['tel']);
        $post['address'] = $post['add'].$post['address'];
        $post['datetime'] = date('Y-m-d H:i:s');
        unset($post['add']);
//        var_dump($post,$arr);die;
        // 插入房东表
        // 启动事务
        Db::startTrans();
        try{
            // 插入房东表
            Db::name('landlord')->insert($arr);
            $lid =  Db::name('landlord')->getLastInsID();
//            var_dump($res,$lid);
            // 插入房源表
            $post['lid'] = $lid;
            Db::name('house')->insert($post);
            // 提交事务
            Db::commit();
            $status = true;
        } catch (\Exception $e) {
            // 回滚事务
            Db::rollback();
            $this->error('新增失败!');
        }
        if ($status) {
            return $this->redirect(url('house/index'));
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        $type = Db::name('house_type')
            ->field(true)
            ->where('display','1')
            ->select();

        $data = Db::name('house')
            ->alias('h')
            ->field(['h.*','l.name','l.tel'])
            ->join('landlord l','l.id=h.lid')
            ->find($id);
        return view('', [
            'type'=>$type,
            'data'=>$data
        ]);
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $res = Db::name('house')
            ->delete($id);
        if ($res) {
            return json($res);
        }
    }

    // 修改状态
    public function doHot($id)
    {
        $res = Db::name('house')
            ->field('hot')
            ->find($id);
        if ($res['hot'] == 2) {
            $arr = ['hot'=>1];
            $data = Db::name('house')
                ->where('id',$id)
                ->update($arr);
            if ($data) {
                return json($arr);
            }
        } else {
            $arr = ['hot'=>2];
            $data = Db::name('house')
                ->where('id',$id)
                ->update($arr);
            if ($data) {
                return json($arr);
            }
        }
    }
}
